﻿#ifndef _OBJECT_H_
#define _OBJECT_H_

#include <d3d9.h>
#include <d3dx9.h>
#include <windows.h>

class CObject
{
protected:
	LPD3DXSPRITE _SpriteHandler;
	float _ground;
	RECT _bounds;
	DWORD _last_time; //Thời gian điều khiển tỷ lệ chuyển frame hình

	float _x_draw;
	float _y_draw;
	
	float _vy;
	float _vx;

	int _elapsed_time_change_frame; //Thời gian chuyển frame hình
	float _vx_last; //Xét hướng di chuyển

	int _current_frame_width;
	int _current_frame_height;

	int _rand_jump;

public:
	float y_handle;
	float x_handle;
	
	bool IsVisible;
	
public:
	CObject(LPD3DXSPRITE SpriteHandler, float XHandle, float YHandle);
	~CObject();

	virtual void Update(int DeltaTime); //Cập nhật đối tượng
	virtual void Draw(); //Vẽ đối tượng
	virtual void Init(LPDIRECT3DDEVICE9 d3dDevice); //Khởi tạo các thuộc tính của đối tượng
	
	void SetGround(float Ground);
	RECT GetBounds(); //Lấy hình chữ nhật bao ngoài của đối tượng

protected:
	void _UpdatePosition(int Time); //Cập nhật tọa độ đối tượng

private:
	void _ConvertCoordinate(float XHandle, float YHandle); //Chuyển hệ trục tọa độ OXY 
};

#endif